/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.projeto.fachada;

import br.com.projeto.InterfaceFachada.Interfacefachada;


import br.com.projeto.entity.Emprestimo;

import br.com.projeto.entity.Pessoa;
import br.com.projeto.entity.Livro;
import br.com.projeto.persistence.exception.JPADeleteException;
import br.com.projeto.persistence.exception.JPAInsertException;
import br.com.projeto.persistence.exception.JPAQueryException;
import br.com.projeto.persistence.exception.JPAUpdateException;
import br.com.projeto.persistence.exception.ViewException;
import br.com.projeto.persistence.jpa.DaoGenericImpl;
import br.com.projeto.session.classes.EmprestimoSessionImpl;
import br.com.projeto.session.classes.LivroSessionImpl;


import br.com.projeto.session.classes.PessoaSessionImpl;
import java.util.List;



/**
 *
 * @author MauricioAlixandre
 */
public class FachadaImpl extends DaoGenericImpl  implements Interfacefachada{ 
        
       
        private PessoaSessionImpl pessoasession = new PessoaSessionImpl();
        private LivroSessionImpl livrosession = new LivroSessionImpl ();
        private EmprestimoSessionImpl emprestimosession  = new EmprestimoSessionImpl ();
        
        
        
        
       
       

//              

        public boolean addPessoa (Pessoa pessoa) throws JPAInsertException{
               return pessoasession.cadPessoa(pessoa);
        }
        public  Pessoa getPessoaPorCPF(String cpf) throws Exception{
            return pessoasession.buscaPessoaPorCpf(cpf);
        }
       
        public List<Pessoa> listPessoas()throws JPAQueryException{
            return pessoasession.listAllPessoas();
        }     
        public  boolean deletarPessoaPorCpf(String cpf ) throws JPADeleteException{
            return pessoasession.deletarPessoaPorCpf(cpf);
        } 
       
        
    
        
        
        public boolean addLivro(Livro livro) throws JPAInsertException{
            return livrosession.addLivro(livro);
        }
        public Livro buscaLivro ( String isbn ) throws Exception {
            return livrosession.getLivro(isbn);
        }
        public boolean removeLivro (Livro v)throws Exception{
            return livrosession.removeLivro(v);
        }
        public java.util.List <Livro> listTodosLivros()throws JPAQueryException{
            return livrosession.listAllLivros();
        }
        public boolean EmprestarLivro ( Emprestimo emprestimo) throws JPAInsertException{
            return emprestimosession.emprestarLivro(emprestimo);
        }

	public boolean LiberarEmrestimo (Emprestimo emprestimo) throws JPADeleteException{
            return emprestimosession.removeEmprestimo(emprestimo);
        }
        public List <Emprestimo> listarEmprestimos()throws JPAQueryException{
            return emprestimosession.listEmprestimos();
        }
        
        
        
        

	
        
        
      
}
